package org.example.myleet.p557;

public class Solution {
    public String reverseWords(String s) {
        char[] charArray = s.toCharArray();
        int l = 0, r = 0;
        while (l < s.length() && r < s.length()) {
            if (charArray[r] == ' ') {
                reverseString(charArray, l, r);
                l = r + 1;
            }
            ++r;
        }
        if (l < r) {
            reverseString(charArray, l, r);
        }
        return new String(charArray);
    }

    /**
     * 反转字符数组的对应部分
     * @param s 字符数组
     * @param start 开始（包含）
     * @param end 结束（不包含）
     */
    private void reverseString(char[] s, int start, int end) {
        int l = start, r = end - 1;
        while (l < r) {
            char c = s[l];
            s[l] = s[r];
            s[r] = c;
            ++l;
            --r;
        }
    }
}
